home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / wtypes.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  33.6 KB  |  1,435 lines

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2.  
  3.  
  4. /* File created by MIDL compiler version 3.03.0106 */
  5. /* at Fri Jun 13 19:46:23 1997
  6.  */
  7. /* Compiler settings for wtypes.idl:
  8.     Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
  9.     error checks: none
  10. */
  11. //@@MIDL_FILE_HEADING(  )
  12.  
  13. #ifndef __wtypes_h__
  14. #define __wtypes_h__
  15. #pragma option push -b
  16.  
  17. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  18. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  19. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  20. #endif
  21.  
  22. #include "rpc.h"
  23. #include "rpcndr.h"
  24.  
  25.  
  26. #ifdef __cplusplus
  27. extern "C"{
  28. #endif 
  29.  
  30. /* Forward Declarations */ 
  31.  
  32. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  33. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  34.  
  35. /****************************************
  36.  * Generated header for interface: __MIDL_itf_wtypes_0000
  37.  * at Fri Jun 13 19:46:23 1997
  38.  * using MIDL 3.03.0106
  39.  ****************************************/
  40. /* [local] */ 
  41.  
  42.  
  43. //+-------------------------------------------------------------------------
  44. //
  45. //  Microsoft Windows
  46. //  Copyright (C) Microsoft Corporation, 1992-1997.
  47. //
  48. //--------------------------------------------------------------------------
  49.  
  50.  
  51. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_v0_0_c_ifspec;
  52. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_v0_0_s_ifspec;
  53.  
  54. #ifndef __IWinTypes_INTERFACE_DEFINED__
  55. #define __IWinTypes_INTERFACE_DEFINED__
  56.  
  57. /****************************************
  58.  * Generated header for interface: IWinTypes
  59.  * at Fri Jun 13 19:46:23 1997
  60.  * using MIDL 3.03.0106
  61.  ****************************************/
  62. /* [auto_handle][unique][version][uuid] */ 
  63.  
  64.  
  65. typedef struct  tagRemHGLOBAL
  66.     {
  67.     long fNullHGlobal;
  68.     unsigned long cbData;
  69.     /* [size_is] */ byte data[ 1 ];
  70.     }    RemHGLOBAL;
  71.  
  72. typedef struct  tagRemHMETAFILEPICT
  73.     {
  74.     long mm;
  75.     long xExt;
  76.     long yExt;
  77.     unsigned long cbData;
  78.     /* [size_is] */ byte data[ 1 ];
  79.     }    RemHMETAFILEPICT;
  80.  
  81. typedef struct  tagRemHENHMETAFILE
  82.     {
  83.     unsigned long cbData;
  84.     /* [size_is] */ byte data[ 1 ];
  85.     }    RemHENHMETAFILE;
  86.  
  87. typedef struct  tagRemHBITMAP
  88.     {
  89.     unsigned long cbData;
  90.     /* [size_is] */ byte data[ 1 ];
  91.     }    RemHBITMAP;
  92.  
  93. typedef struct  tagRemHPALETTE
  94.     {
  95.     unsigned long cbData;
  96.     /* [size_is] */ byte data[ 1 ];
  97.     }    RemHPALETTE;
  98.  
  99. typedef struct  tagRemBRUSH
  100.     {
  101.     unsigned long cbData;
  102.     /* [size_is] */ byte data[ 1 ];
  103.     }    RemHBRUSH;
  104.  
  105. #if !defined(_WIN32) && !defined(_MPPC_)
  106. // The following code is for Win16 only
  107. #ifndef WINAPI          // If not included with 3.1 headers...
  108. #define FAR             _far
  109. #define PASCAL          _pascal
  110. #define CDECL           _cdecl
  111. #define VOID            void
  112. #define WINAPI      FAR PASCAL
  113. #define CALLBACK    FAR PASCAL
  114. #ifndef FALSE
  115. #define FALSE 0
  116. #define TRUE 1
  117. #endif // !FALSE
  118. #ifndef _BYTE_DEFINED
  119. #define _BYTE_DEFINED
  120. typedef unsigned char BYTE;
  121.  
  122. #endif // !_BYTE_DEFINED
  123. #ifndef _WORD_DEFINED
  124. #define _WORD_DEFINED
  125. typedef unsigned short WORD;
  126.  
  127. #endif // !_WORD_DEFINED
  128. typedef unsigned int UINT;
  129.  
  130. typedef int INT;
  131.  
  132. typedef long BOOL;
  133.  
  134. #ifndef _LONG_DEFINED
  135. #define _LONG_DEFINED
  136. typedef long LONG;
  137.  
  138. #endif // !_LONG_DEFINED
  139. #ifndef _WPARAM_DEFINED
  140. #define _WPARAM_DEFINED
  141. typedef UINT WPARAM;
  142.  
  143. #endif // _WPARAM_DEFINED
  144. #ifndef _DWORD_DEFINED
  145. #define _DWORD_DEFINED
  146. typedef unsigned long DWORD;
  147.  
  148. #endif // !_DWORD_DEFINED
  149. #ifndef _LPARAM_DEFINED
  150. #define _LPARAM_DEFINED
  151. typedef LONG LPARAM;
  152.  
  153. #endif // !_LPARAM_DEFINED
  154. #ifndef _LRESULT_DEFINED
  155. #define _LRESULT_DEFINED
  156. typedef LONG LRESULT;
  157.  
  158. #endif // !_LRESULT_DEFINED
  159. typedef void __RPC_FAR *HANDLE;
  160.  
  161. typedef void __RPC_FAR *HMODULE;
  162.  
  163. typedef void __RPC_FAR *HINSTANCE;
  164.  
  165. typedef void __RPC_FAR *HRGN;
  166.  
  167. typedef void __RPC_FAR *HTASK;
  168.  
  169. typedef void __RPC_FAR *HKEY;
  170.  
  171. typedef void __RPC_FAR *HDESK;
  172.  
  173. typedef void __RPC_FAR *HMF;
  174.  
  175. typedef void __RPC_FAR *HEMF;
  176.  
  177. typedef void __RPC_FAR *HPEN;
  178.  
  179. typedef void __RPC_FAR *HRSRC;
  180.  
  181. typedef void __RPC_FAR *HSTR;
  182.  
  183. typedef void __RPC_FAR *HWINSTA;
  184.  
  185. typedef void __RPC_FAR *HKL;
  186.  
  187. typedef void __RPC_FAR *HGDIOBJ;
  188.  
  189. typedef HANDLE HDWP;
  190.  
  191. #ifndef _HFILE_DEFINED
  192. #define _HFILE_DEFINED
  193. typedef INT HFILE;
  194.  
  195. #endif // !_HFILE_DEFINED
  196. #ifndef _LPWORD_DEFINED
  197. #define _LPWORD_DEFINED
  198. typedef WORD __RPC_FAR *LPWORD;
  199.  
  200. #endif // !_LPWORD_DEFINED
  201. #ifndef _LPDWORD_DEFINED
  202. #define _LPDWORD_DEFINED
  203. typedef DWORD __RPC_FAR *LPDWORD;
  204.  
  205. #endif // !_LPDWORD_DEFINED
  206. typedef char CHAR;
  207.  
  208. typedef /* [string] */ CHAR __RPC_FAR *LPSTR;
  209.  
  210. typedef /* [string] */ const CHAR __RPC_FAR *LPCSTR;
  211.  
  212. #ifndef _WCHAR_DEFINED
  213. #define _WCHAR_DEFINED
  214. typedef wchar_t WCHAR;
  215.  
  216. typedef WCHAR TCHAR;
  217.  
  218. #endif // !_WCHAR_DEFINED
  219. typedef /* [string] */ WCHAR __RPC_FAR *LPWSTR;
  220.  
  221. typedef /* [string] */ TCHAR __RPC_FAR *LPTSTR;
  222.  
  223. typedef /* [string] */ const WCHAR __RPC_FAR *LPCWSTR;
  224.  
  225. typedef /* [string] */ const TCHAR __RPC_FAR *LPCTSTR;
  226.  
  227. typedef struct  tagPALETTEENTRY
  228.     {
  229.     BYTE peRed;
  230.     BYTE peGreen;
  231.     BYTE peBlue;
  232.     BYTE peFlags;
  233.     }    PALETTEENTRY;
  234.  
  235. typedef struct tagPALETTEENTRY __RPC_FAR *PPALETTEENTRY;
  236.  
  237. typedef struct tagPALETTEENTRY __RPC_FAR *LPPALETTEENTRY;
  238.  
  239. #if 0
  240. typedef struct  tagLOGPALETTE
  241.     {
  242.     WORD palVersion;
  243.     WORD palNumEntries;
  244.     /* [size_is] */ PALETTEENTRY palPalEntry[ 1 ];
  245.     }    LOGPALETTE;
  246.  
  247. typedef struct tagLOGPALETTE __RPC_FAR *PLOGPALETTE;
  248.  
  249. typedef struct tagLOGPALETTE __RPC_FAR *LPLOGPALETTE;
  250.  
  251. #else
  252. typedef struct tagLOGPALETTE {
  253.     WORD        palVersion;
  254.     WORD        palNumEntries;
  255.     PALETTEENTRY        palPalEntry[1];
  256. } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
  257. #endif
  258. #ifndef _COLORREF_DEFINED
  259. #define _COLORREF_DEFINED
  260. typedef DWORD COLORREF;
  261.  
  262. #endif // !_COLORREF_DEFINED
  263. #ifndef _LPCOLORREF_DEFINED
  264. #define _LPCOLORREF_DEFINED
  265. typedef DWORD __RPC_FAR *LPCOLORREF;
  266.  
  267. #endif // !_LPCOLORREF_DEFINED
  268. typedef HANDLE __RPC_FAR *LPHANDLE;
  269.  
  270. typedef struct  _RECTL
  271.     {
  272.     LONG left;
  273.     LONG top;
  274.     LONG right;
  275.     LONG bottom;
  276.     }    RECTL;
  277.  
  278. typedef struct _RECTL __RPC_FAR *PRECTL;
  279.  
  280. typedef struct _RECTL __RPC_FAR *LPRECTL;
  281.  
  282. typedef struct  tagPOINT
  283.     {
  284.     LONG x;
  285.     LONG y;
  286.     }    POINT;
  287.  
  288. typedef struct tagPOINT __RPC_FAR *PPOINT;
  289.  
  290. typedef struct tagPOINT __RPC_FAR *LPPOINT;
  291.  
  292. typedef struct  _POINTL
  293.     {
  294.     LONG x;
  295.     LONG y;
  296.     }    POINTL;
  297.  
  298. typedef struct _POINTL __RPC_FAR *PPOINTL;
  299.  
  300. #ifndef WIN16
  301. typedef struct  tagSIZE
  302.     {
  303.     LONG cx;
  304.     LONG cy;
  305.     }    SIZE;
  306.  
  307. typedef struct tagSIZE __RPC_FAR *PSIZE;
  308.  
  309. typedef struct tagSIZE __RPC_FAR *LPSIZE;
  310.  
  311. #else // WIN16
  312. typedef struct tagSIZE
  313. {
  314.     INT cx;
  315.     INT cy;
  316. } SIZE, *PSIZE, *LPSIZE;
  317. #endif // WIN16
  318. typedef struct  tagSIZEL
  319.     {
  320.     LONG cx;
  321.     LONG cy;
  322.     }    SIZEL;
  323.  
  324. typedef struct tagSIZEL __RPC_FAR *PSIZEL;
  325.  
  326. typedef struct tagSIZEL __RPC_FAR *LPSIZEL;
  327.  
  328. #endif  //WINAPI
  329. #endif  //!WIN32 && !MPPC
  330. #if defined(_WIN32) && !defined(OLE2ANSI)
  331. typedef WCHAR OLECHAR;
  332.  
  333. typedef /* [string] */ OLECHAR __RPC_FAR *LPOLESTR;
  334.  
  335. typedef /* [string] */ const OLECHAR __RPC_FAR *LPCOLESTR;
  336.  
  337. #define OLESTR(str) L##str
  338.  
  339. #else
  340.  
  341. typedef char      OLECHAR;
  342. typedef LPSTR     LPOLESTR;
  343. typedef LPCSTR    LPCOLESTR;
  344. #define OLESTR(str) str
  345. #endif
  346. #ifndef _WINDEF_
  347. typedef const RECTL __RPC_FAR *LPCRECTL;
  348.  
  349. typedef void __RPC_FAR *PVOID;
  350.  
  351. typedef void __RPC_FAR *LPVOID;
  352.  
  353. typedef float FLOAT;
  354.  
  355. typedef struct  tagRECT
  356.     {
  357.     LONG left;
  358.     LONG top;
  359.     LONG right;
  360.     LONG bottom;
  361.     }    RECT;
  362.  
  363. typedef struct tagRECT __RPC_FAR *PRECT;
  364.  
  365. typedef struct tagRECT __RPC_FAR *LPRECT;
  366.  
  367. typedef const RECT __RPC_FAR *LPCRECT;
  368.  
  369. #endif  //_WINDEF_
  370. typedef unsigned char UCHAR;
  371.  
  372. typedef short SHORT;
  373.  
  374. typedef unsigned short USHORT;
  375.  
  376. typedef DWORD ULONG;
  377.  
  378. typedef double DOUBLE;
  379.  
  380. #ifndef _DWORDLONG_
  381. typedef MIDL_uhyper DWORDLONG;
  382.  
  383. typedef DWORDLONG __RPC_FAR *PDWORDLONG;
  384.  
  385. #endif // !_DWORDLONG_
  386. #ifndef _ULONGLONG_
  387. typedef hyper LONGLONG;
  388.  
  389. typedef MIDL_uhyper ULONGLONG;
  390.  
  391. typedef LONGLONG __RPC_FAR *PLONGLONG;
  392.  
  393. typedef ULONGLONG __RPC_FAR *PULONGLONG;
  394.  
  395. #endif // _ULONGLONG_
  396. #if 0
  397. typedef struct  _LARGE_INTEGER
  398.     {
  399.     LONGLONG QuadPart;
  400.     }    LARGE_INTEGER;
  401.  
  402. typedef LARGE_INTEGER __RPC_FAR *PLARGE_INTEGER;
  403.  
  404. typedef struct  _ULARGE_INTEGER
  405.     {
  406.     ULONGLONG QuadPart;
  407.     }    ULARGE_INTEGER;
  408.  
  409. #endif // 0
  410. #ifndef _WINBASE_
  411. #ifndef _FILETIME_
  412. #define _FILETIME_
  413. typedef struct  _FILETIME
  414.     {
  415.     DWORD dwLowDateTime;
  416.     DWORD dwHighDateTime;
  417.     }    FILETIME;
  418.  
  419. typedef struct _FILETIME __RPC_FAR *PFILETIME;
  420.  
  421. typedef struct _FILETIME __RPC_FAR *LPFILETIME;
  422.  
  423. #endif // !_FILETIME
  424. #ifndef _SYSTEMTIME_
  425. #define _SYSTEMTIME_
  426. typedef struct  _SYSTEMTIME
  427.     {
  428.     WORD wYear;
  429.     WORD wMonth;
  430.     WORD wDayOfWeek;
  431.     WORD wDay;
  432.     WORD wHour;
  433.     WORD wMinute;
  434.     WORD wSecond;
  435.     WORD wMilliseconds;
  436.     }    SYSTEMTIME;
  437.  
  438. typedef struct _SYSTEMTIME __RPC_FAR *PSYSTEMTIME;
  439.  
  440. typedef struct _SYSTEMTIME __RPC_FAR *LPSYSTEMTIME;
  441.  
  442. #endif // !_SYSTEMTIME
  443. #ifndef _SECURITY_ATTRIBUTES_
  444. #define _SECURITY_ATTRIBUTES_
  445. typedef struct  _SECURITY_ATTRIBUTES
  446.     {
  447.     DWORD nLength;
  448.     /* [size_is] */ LPVOID lpSecurityDescriptor;
  449.     BOOL bInheritHandle;
  450.     }    SECURITY_ATTRIBUTES;
  451.  
  452. typedef struct _SECURITY_ATTRIBUTES __RPC_FAR *PSECURITY_ATTRIBUTES;
  453.  
  454. typedef struct _SECURITY_ATTRIBUTES __RPC_FAR *LPSECURITY_ATTRIBUTES;
  455.  
  456. #endif // !_SECURITY_ATTRIBUTES_
  457. #ifndef SECURITY_DESCRIPTOR_REVISION
  458. typedef USHORT SECURITY_DESCRIPTOR_CONTROL;
  459.  
  460. typedef USHORT __RPC_FAR *PSECURITY_DESCRIPTOR_CONTROL;
  461.  
  462. typedef PVOID PSID;
  463.  
  464. typedef struct  _ACL
  465.     {
  466.     UCHAR AclRevision;
  467.     UCHAR Sbz1;
  468.     USHORT AclSize;
  469.     USHORT AceCount;
  470.     USHORT Sbz2;
  471.     }    ACL;
  472.  
  473. typedef ACL __RPC_FAR *PACL;
  474.  
  475. typedef struct  _SECURITY_DESCRIPTOR
  476.     {
  477.     UCHAR Revision;
  478.     UCHAR Sbz1;
  479.     SECURITY_DESCRIPTOR_CONTROL Control;
  480.     PSID Owner;
  481.     PSID Group;
  482.     PACL Sacl;
  483.     PACL Dacl;
  484.     }    SECURITY_DESCRIPTOR;
  485.  
  486. typedef struct _SECURITY_DESCRIPTOR __RPC_FAR *PISECURITY_DESCRIPTOR;
  487.  
  488. #endif // !SECURITY_DESCRIPTOR_REVISION
  489. #endif //_WINBASE_
  490. typedef struct  _COAUTHIDENTITY
  491.     {
  492.     /* [size_is] */ USHORT __RPC_FAR *User;
  493.     ULONG UserLength;
  494.     /* [size_is] */ USHORT __RPC_FAR *Domain;
  495.     ULONG DomainLength;
  496.     /* [size_is] */ USHORT __RPC_FAR *Password;
  497.     ULONG PasswordLength;
  498.     ULONG Flags;
  499.     }    COAUTHIDENTITY;
  500.  
  501. typedef struct  _COAUTHINFO
  502.     {
  503.     DWORD dwAuthnSvc;
  504.     DWORD dwAuthzSvc;
  505.     LPWSTR pwszServerPrincName;
  506.     DWORD dwAuthnLevel;
  507.     DWORD dwImpersonationLevel;
  508.     COAUTHIDENTITY __RPC_FAR *pAuthIdentityData;
  509.     DWORD dwCapabilities;
  510.     }    COAUTHINFO;
  511.  
  512. typedef struct  _COSERVERINFO
  513.     {
  514.     DWORD dwReserved1;
  515.     LPWSTR pwszName;
  516.     COAUTHINFO __RPC_FAR *pAuthInfo;
  517.     DWORD dwReserved2;
  518.     }    COSERVERINFO;
  519.  
  520. typedef LONG SCODE;
  521.  
  522. #ifndef _HRESULT_DEFINED
  523. #define _HRESULT_DEFINED
  524. typedef LONG HRESULT;
  525.  
  526. #endif // !_HRESULT_DEFINED
  527. typedef SCODE __RPC_FAR *PSCODE;
  528.  
  529. #ifndef GUID_DEFINED
  530. #define GUID_DEFINED
  531. typedef struct  _GUID
  532.     {
  533.     DWORD Data1;
  534.     WORD Data2;
  535.     WORD Data3;
  536.     BYTE Data4[ 8 ];
  537.     }    GUID;
  538.  
  539. #endif // !GUID_DEFINED
  540. #if !defined( __LPGUID_DEFINED__ )
  541. #define __LPGUID_DEFINED__
  542. typedef GUID __RPC_FAR *LPGUID;
  543.  
  544. #endif // !__LPGUID_DEFINED__
  545. #ifndef __OBJECTID_DEFINED
  546. #define __OBJECTID_DEFINED
  547. #define _OBJECTID_DEFINED
  548. typedef struct  _OBJECTID
  549.     {
  550.     GUID Lineage;
  551.     unsigned long Uniquifier;
  552.     }    OBJECTID;
  553.  
  554. #endif // !_OBJECTID_DEFINED
  555. #if !defined( __IID_DEFINED__ )
  556. #define __IID_DEFINED__
  557. typedef GUID IID;
  558.  
  559. typedef IID __RPC_FAR *LPIID;
  560.  
  561. #define IID_NULL            GUID_NULL
  562. #define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)
  563. typedef GUID CLSID;
  564.  
  565. typedef CLSID __RPC_FAR *LPCLSID;
  566.  
  567. #define CLSID_NULL          GUID_NULL
  568. #define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2)
  569. typedef GUID FMTID;
  570.  
  571. typedef FMTID __RPC_FAR *LPFMTID;
  572.  
  573. #define FMTID_NULL          GUID_NULL
  574. #define IsEqualFMTID(rfmtid1, rfmtid2) IsEqualGUID(rfmtid1, rfmtid2)
  575. #if 0
  576. typedef GUID __RPC_FAR *REFGUID;
  577.  
  578. typedef IID __RPC_FAR *REFIID;
  579.  
  580. typedef CLSID __RPC_FAR *REFCLSID;
  581.  
  582. typedef FMTID __RPC_FAR *REFFMTID;
  583.  
  584. #endif // 0
  585. #if defined(__cplusplus)
  586. #ifndef _REFGUID_DEFINED
  587. #define _REFGUID_DEFINED
  588. #define REFGUID             const GUID &
  589. #endif // !_REFGUID_DEFINED
  590. #ifndef _REFIID_DEFINED
  591. #define _REFIID_DEFINED
  592. #define REFIID              const IID &
  593. #endif // !_REFIID_DEFINED
  594. #ifndef _REFCLSID_DEFINED
  595. #define _REFCLSID_DEFINED
  596. #define REFCLSID            const CLSID &
  597. #endif // !_REFCLSID_DEFINED
  598. #ifndef _REFFMTID_DEFINED
  599. #define _REFFMTID_DEFINED
  600. #define REFFMTID            const FMTID &
  601. #endif // !_REFFMTID_DEFINED
  602. #else // !__cplusplus
  603. #ifndef _REFGUID_DEFINED
  604. #define _REFGUID_DEFINED
  605. #define REFGUID             const GUID * const
  606. #endif // !_REFGUID_DEFINED
  607. #ifndef _REFIID_DEFINED
  608. #define _REFIID_DEFINED
  609. #define REFIID              const IID * const
  610. #endif // !_REFIID_DEFINED
  611. #ifndef _REFCLSID_DEFINED
  612. #define _REFCLSID_DEFINED
  613. #define REFCLSID            const CLSID * const
  614. #endif // !_REFCLSID_DEFINED
  615. #ifndef _REFFMTID_DEFINED
  616. #define _REFFMTID_DEFINED
  617. #define REFFMTID            const FMTID * const
  618. #endif // !_REFFMTID_DEFINED
  619. #endif // !__cplusplus
  620. #endif // !__IID_DEFINED__
  621. typedef 
  622. enum tagMEMCTX
  623.     {    MEMCTX_TASK    = 1,
  624.     MEMCTX_SHARED    = 2,
  625.     MEMCTX_MACSYSTEM    = 3,
  626.     MEMCTX_UNKNOWN    = -1,
  627.     MEMCTX_SAME    = -2
  628.     }    MEMCTX;
  629.  
  630. #ifndef _ROTFLAGS_DEFINED
  631. #define _ROTFLAGS_DEFINED
  632. #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
  633. #define ROTFLAGS_ALLOWANYCLIENT 0x2
  634. #endif // !_ROTFLAGS_DEFINED
  635. #ifndef _ROT_COMPARE_MAX_DEFINED
  636. #define _ROT_COMPARE_MAX_DEFINED
  637. #define ROT_COMPARE_MAX 2048
  638. #endif // !_ROT_COMPARE_MAX_DEFINED
  639. typedef 
  640. enum tagCLSCTX
  641.     {    CLSCTX_INPROC_SERVER    = 0x1,
  642.     CLSCTX_INPROC_HANDLER    = 0x2,
  643.     CLSCTX_LOCAL_SERVER    = 0x4,
  644.     CLSCTX_INPROC_SERVER16    = 0x8,
  645.     CLSCTX_REMOTE_SERVER    = 0x10,
  646.     CLSCTX_INPROC_HANDLER16    = 0x20,
  647.     CLSCTX_INPROC_SERVERX86    = 0x40,
  648.     CLSCTX_INPROC_HANDLERX86    = 0x80,
  649.     CLSCTX_ESERVER_HANDLER    = 0x100
  650.     }    CLSCTX;
  651.  
  652. typedef 
  653. enum tagMSHLFLAGS
  654.     {    MSHLFLAGS_NORMAL    = 0,
  655.     MSHLFLAGS_TABLESTRONG    = 1,
  656.     MSHLFLAGS_TABLEWEAK    = 2,
  657.     MSHLFLAGS_NOPING    = 4
  658.     }    MSHLFLAGS;
  659.  
  660. typedef 
  661. enum tagMSHCTX
  662.     {    MSHCTX_LOCAL    = 0,
  663.     MSHCTX_NOSHAREDMEM    = 1,
  664.     MSHCTX_DIFFERENTMACHINE    = 2,
  665.     MSHCTX_INPROC    = 3
  666.     }    MSHCTX;
  667.  
  668. typedef 
  669. enum tagDVASPECT
  670.     {    DVASPECT_CONTENT    = 1,
  671.     DVASPECT_THUMBNAIL    = 2,
  672.     DVASPECT_ICON    = 4,
  673.     DVASPECT_DOCPRINT    = 8
  674.     }    DVASPECT;
  675.  
  676. typedef 
  677. enum tagSTGC
  678.     {    STGC_DEFAULT    = 0,
  679.     STGC_OVERWRITE    = 1,
  680.     STGC_ONLYIFCURRENT    = 2,
  681.     STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE    = 4,
  682.     STGC_CONSOLIDATE    = 8
  683.     }    STGC;
  684.  
  685. typedef 
  686. enum tagSTGMOVE
  687.     {    STGMOVE_MOVE    = 0,
  688.     STGMOVE_COPY    = 1,
  689.     STGMOVE_SHALLOWCOPY    = 2
  690.     }    STGMOVE;
  691.  
  692. typedef 
  693. enum tagSTATFLAG
  694.     {    STATFLAG_DEFAULT    = 0,
  695.     STATFLAG_NONAME    = 1,
  696.     STATFLAG_NOOPEN    = 2
  697.     }    STATFLAG;
  698.  
  699. typedef /* [context_handle] */ void __RPC_FAR *HCONTEXT;
  700.  
  701. #ifndef _LCID_DEFINED
  702. #define _LCID_DEFINED
  703. typedef DWORD LCID;
  704.  
  705. #endif // !_LCID_DEFINED
  706. typedef struct  _BYTE_BLOB
  707.     {
  708.     unsigned long clSize;
  709.     /* [size_is] */ byte abData[ 1 ];
  710.     }    BYTE_BLOB;
  711.  
  712. typedef /* [unique] */ BYTE_BLOB __RPC_FAR *UP_BYTE_BLOB;
  713.  
  714. typedef struct  _WORD_BLOB
  715.     {
  716.     unsigned long clSize;
  717.     /* [size_is] */ unsigned short asData[ 1 ];
  718.     }    WORD_BLOB;
  719.  
  720. typedef /* [unique] */ WORD_BLOB __RPC_FAR *UP_WORD_BLOB;
  721.  
  722. typedef struct  _DWORD_BLOB
  723.     {
  724.     unsigned long clSize;
  725.     /* [size_is] */ unsigned long alData[ 1 ];
  726.     }    DWORD_BLOB;
  727.  
  728. typedef /* [unique] */ DWORD_BLOB __RPC_FAR *UP_DWORD_BLOB;
  729.  
  730. typedef struct  _FLAGGED_BYTE_BLOB
  731.     {
  732.     unsigned long fFlags;
  733.     unsigned long clSize;
  734.     /* [size_is] */ byte abData[ 1 ];
  735.     }    FLAGGED_BYTE_BLOB;
  736.  
  737. typedef /* [unique] */ FLAGGED_BYTE_BLOB __RPC_FAR *UP_FLAGGED_BYTE_BLOB;
  738.  
  739. typedef struct  _FLAGGED_WORD_BLOB
  740.     {
  741.     unsigned long fFlags;
  742.     unsigned long clSize;
  743.     /* [size_is] */ unsigned short asData[ 1 ];
  744.     }    FLAGGED_WORD_BLOB;
  745.  
  746. typedef /* [unique] */ FLAGGED_WORD_BLOB __RPC_FAR *UP_FLAGGED_WORD_BLOB;
  747.  
  748. typedef struct  _BYTE_SIZEDARR
  749.     {
  750.     unsigned long clSize;
  751.     /* [size_is] */ byte __RPC_FAR *pData;
  752.     }    BYTE_SIZEDARR;
  753.  
  754. typedef struct  _SHORT_SIZEDARR
  755.     {
  756.     unsigned long clSize;
  757.     /* [size_is] */ unsigned short __RPC_FAR *pData;
  758.     }    WORD_SIZEDARR;
  759.  
  760. typedef struct  _LONG_SIZEDARR
  761.     {
  762.     unsigned long clSize;
  763.     /* [size_is] */ unsigned long __RPC_FAR *pData;
  764.     }    DWORD_SIZEDARR;
  765.  
  766. typedef struct  _HYPER_SIZEDARR
  767.     {
  768.     unsigned long clSize;
  769.     /* [size_is] */ hyper __RPC_FAR *pData;
  770.     }    HYPER_SIZEDARR;
  771.  
  772. #define    WDT_INPROC_CALL    ( 0x48746457 )
  773.  
  774. #define    WDT_REMOTE_CALL    ( 0x52746457 )
  775.  
  776. typedef struct  _userCLIPFORMAT
  777.     {
  778.     long fContext;
  779.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0001
  780.         {
  781.         /* [case()] */ DWORD dwValue;
  782.         /* [case()][string] */ wchar_t __RPC_FAR *pwszName;
  783.         }    u;
  784.     }    userCLIPFORMAT;
  785.  
  786. typedef /* [unique] */ userCLIPFORMAT __RPC_FAR *wireCLIPFORMAT;
  787.  
  788. typedef /* [wire_marshal] */ WORD CLIPFORMAT;
  789.  
  790. typedef struct  _GDI_NONREMOTE
  791.     {
  792.     long fContext;
  793.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0002
  794.         {
  795.         /* [case()] */ long hInproc;
  796.         /* [case()] */ DWORD_BLOB __RPC_FAR *hRemote;
  797.         }    u;
  798.     }    GDI_NONREMOTE;
  799.  
  800. typedef struct  _userHGLOBAL
  801.     {
  802.     long fContext;
  803.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0003
  804.         {
  805.         /* [case()] */ long hInproc;
  806.         /* [case()] */ FLAGGED_BYTE_BLOB __RPC_FAR *hRemote;
  807.         /* [default] */ long hGlobal;
  808.         }    u;
  809.     }    userHGLOBAL;
  810.  
  811. typedef /* [unique] */ userHGLOBAL __RPC_FAR *wireHGLOBAL;
  812.  
  813. typedef struct  _userHMETAFILE
  814.     {
  815.     long fContext;
  816.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0004
  817.         {
  818.         /* [case()] */ long hInproc;
  819.         /* [case()] */ BYTE_BLOB __RPC_FAR *hRemote;
  820.         /* [default] */ long hGlobal;
  821.         }    u;
  822.     }    userHMETAFILE;
  823.  
  824. typedef struct  _remoteMETAFILEPICT
  825.     {
  826.     long mm;
  827.     long xExt;
  828.     long yExt;
  829.     userHMETAFILE __RPC_FAR *hMF;
  830.     }    remoteMETAFILEPICT;
  831.  
  832. typedef struct  _userHMETAFILEPICT
  833.     {
  834.     long fContext;
  835.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0005
  836.         {
  837.         /* [case()] */ long hInproc;
  838.         /* [case()] */ remoteMETAFILEPICT __RPC_FAR *hRemote;
  839.         /* [default] */ long hGlobal;
  840.         }    u;
  841.     }    userHMETAFILEPICT;
  842.  
  843. typedef struct  _userHENHMETAFILE
  844.     {
  845.     long fContext;
  846.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0006
  847.         {
  848.         /* [case()] */ long hInproc;
  849.         /* [case()] */ BYTE_BLOB __RPC_FAR *hRemote;
  850.         /* [default] */ long hGlobal;
  851.         }    u;
  852.     }    userHENHMETAFILE;
  853.  
  854. typedef struct  _userBITMAP
  855.     {
  856.     LONG bmType;
  857.     LONG bmWidth;
  858.     LONG bmHeight;
  859.     LONG bmWidthBytes;
  860.     WORD bmPlanes;
  861.     WORD bmBitsPixel;
  862.     ULONG cbSize;
  863.     /* [size_is] */ byte pBuffer[ 1 ];
  864.     }    userBITMAP;
  865.  
  866. typedef struct  _userHBITMAP
  867.     {
  868.     long fContext;
  869.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0007
  870.         {
  871.         /* [case()] */ long hInproc;
  872.         /* [case()] */ userBITMAP __RPC_FAR *hRemote;
  873.         /* [default] */ long hGlobal;
  874.         }    u;
  875.     }    userHBITMAP;
  876.  
  877. typedef struct  tagrpcLOGPALETTE
  878.     {
  879.     WORD palVersion;
  880.     WORD palNumEntries;
  881.     /* [size_is] */ PALETTEENTRY palPalEntry[ 1 ];
  882.     }    rpcLOGPALETTE;
  883.  
  884. typedef struct  _userHPALETTE
  885.     {
  886.     long fContext;
  887.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0008
  888.         {
  889.         /* [case()] */ long hInproc;
  890.         /* [case()] */ rpcLOGPALETTE __RPC_FAR *hRemote;
  891.         /* [default] */ long hGlobal;
  892.         }    u;
  893.     }    userHPALETTE;
  894.  
  895. typedef struct  _RemotableHandle
  896.     {
  897.     long fContext;
  898.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IWinTypes_0009
  899.         {
  900.         /* [case()] */ long hInproc;
  901.         /* [case()] */ long hRemote;
  902.         }    u;
  903.     }    RemotableHandle;
  904.  
  905. typedef /* [unique] */ RemotableHandle __RPC_FAR *wireHWND;
  906.  
  907. typedef /* [unique] */ RemotableHandle __RPC_FAR *wireHMENU;
  908.  
  909. typedef /* [unique] */ RemotableHandle __RPC_FAR *wireHACCEL;
  910.  
  911. typedef /* [unique] */ RemotableHandle __RPC_FAR *wireHBRUSH;
  912.  
  913. typedef /* [unique] */ RemotableHandle __RPC_FAR *wireHFONT;
  914.  
  915. typedef /* [unique] */ RemotableHandle __RPC_FAR *wireHDC;
  916.  
  917. typedef /* [unique] */ RemotableHandle __RPC_FAR *wireHICON;
  918.  
  919. #if 0
  920. typedef /* [wire_marshal] */ void __RPC_FAR *HWND;
  921.  
  922. typedef /* [wire_marshal] */ void __RPC_FAR *HMENU;
  923.  
  924. typedef /* [wire_marshal] */ void __RPC_FAR *HACCEL;
  925.  
  926. typedef /* [wire_marshal] */ void __RPC_FAR *HBRUSH;
  927.  
  928. typedef /* [wire_marshal] */ void __RPC_FAR *HFONT;
  929.  
  930. typedef /* [wire_marshal] */ void __RPC_FAR *HDC;
  931.  
  932. typedef /* [wire_marshal] */ void __RPC_FAR *HICON;
  933.  
  934. #ifndef _HCURSOR_DEFINED
  935. #define _HCURSOR_DEFINED
  936. typedef HICON HCURSOR;
  937.  
  938. #endif // !_HCURSOR_DEFINED
  939. /* tagTEXTMETRICW was copied from wingdi.h for MIDL */
  940. typedef struct  tagTEXTMETRICW
  941.     {
  942.     LONG tmHeight;
  943.     LONG tmAscent;
  944.     LONG tmDescent;
  945.     LONG tmInternalLeading;
  946.     LONG tmExternalLeading;
  947.     LONG tmAveCharWidth;
  948.     LONG tmMaxCharWidth;
  949.     LONG tmWeight;
  950.     LONG tmOverhang;
  951.     LONG tmDigitizedAspectX;
  952.     LONG tmDigitizedAspectY;
  953.     WCHAR tmFirstChar;
  954.     WCHAR tmLastChar;
  955.     WCHAR tmDefaultChar;
  956.     WCHAR tmBreakChar;
  957.     BYTE tmItalic;
  958.     BYTE tmUnderlined;
  959.     BYTE tmStruckOut;
  960.     BYTE tmPitchAndFamily;
  961.     BYTE tmCharSet;
  962.     }    TEXTMETRICW;
  963.  
  964. #endif //0
  965. #ifndef _WIN32           // The following code is for Win16 only
  966. #ifndef WINAPI          // If not included with 3.1 headers...
  967. typedef struct  tagMSG
  968.     {
  969.     HWND hwnd;
  970.     UINT message;
  971.     WPARAM wParam;
  972.     LPARAM lParam;
  973.     DWORD time;
  974.     POINT pt;
  975.     }    MSG;
  976.  
  977. typedef struct tagMSG __RPC_FAR *PMSG;
  978.  
  979. typedef struct tagMSG __RPC_FAR *NPMSG;
  980.  
  981. typedef struct tagMSG __RPC_FAR *LPMSG;
  982.  
  983. #endif // _WIN32
  984. #endif // WINAPI
  985. typedef /* [unique] */ userHBITMAP __RPC_FAR *wireHBITMAP;
  986.  
  987. typedef /* [unique] */ userHPALETTE __RPC_FAR *wireHPALETTE;
  988.  
  989. typedef /* [unique] */ userHENHMETAFILE __RPC_FAR *wireHENHMETAFILE;
  990.  
  991. typedef /* [unique] */ userHMETAFILE __RPC_FAR *wireHMETAFILE;
  992.  
  993. typedef /* [unique] */ userHMETAFILEPICT __RPC_FAR *wireHMETAFILEPICT;
  994.  
  995. #if 0
  996. typedef /* [wire_marshal] */ void __RPC_FAR *HGLOBAL;
  997.  
  998. typedef HGLOBAL HLOCAL;
  999.  
  1000. typedef /* [wire_marshal] */ void __RPC_FAR *HBITMAP;
  1001.  
  1002. typedef /* [wire_marshal] */ void __RPC_FAR *HPALETTE;
  1003.  
  1004. typedef /* [wire_marshal] */ void __RPC_FAR *HENHMETAFILE;
  1005.  
  1006. typedef /* [wire_marshal] */ void __RPC_FAR *HMETAFILE;
  1007.  
  1008. #endif //0
  1009. typedef /* [wire_marshal] */ void __RPC_FAR *HMETAFILEPICT;
  1010.  
  1011.  
  1012.  
  1013. extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec;
  1014. extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec;
  1015. #endif /* __IWinTypes_INTERFACE_DEFINED__ */
  1016.  
  1017. /****************************************
  1018.  * Generated header for interface: __MIDL_itf_wtypes_0001
  1019.  * at Fri Jun 13 19:46:23 1997
  1020.  * using MIDL 3.03.0106
  1021.  ****************************************/
  1022. /* [local] */ 
  1023.  
  1024.  
  1025. #if ( _MSC_VER >= 800 )
  1026. #pragma warning(disable:4201)
  1027. #endif
  1028. typedef double DATE;
  1029.  
  1030. #ifndef _tagCY_DEFINED
  1031. #define _tagCY_DEFINED
  1032. #define _CY_DEFINED
  1033. #if 0
  1034. /* the following isn't the real definition of CY, but it is */
  1035. /* what RPC knows how to remote */
  1036. typedef struct  tagCY
  1037.     {
  1038.     LONGLONG int64;
  1039.     }    CY;
  1040.  
  1041. #else /* 0 */
  1042. /* real definition that makes the C++ compiler happy */
  1043. typedef union tagCY {
  1044.     struct {
  1045. #ifdef _MAC
  1046.         long      Hi;
  1047.         long Lo;
  1048. #else
  1049.         unsigned long Lo;
  1050.         long      Hi;
  1051. #endif
  1052. #ifdef _ANONYMOUS_STRUCT  /* __BORLANDC__ needs this */
  1053.     };
  1054. #else
  1055.     }s;
  1056. #endif
  1057.     LONGLONG int64;
  1058. } CY;
  1059. #endif /* 0 */
  1060. #endif /* _tagCY_DEFINED */
  1061. #if 0 /* _tagDEC_DEFINED */
  1062. /* The following isn't the real definition of Decimal type, */
  1063. /* but it is what RPC knows how to remote */
  1064. typedef struct  tagDEC
  1065.     {
  1066.     USHORT wReserved;
  1067.     BYTE scale;
  1068.     BYTE sign;
  1069.     ULONG Hi32;
  1070.     ULONGLONG Lo64;
  1071.     }    DECIMAL;
  1072.  
  1073. #else /* _tagDEC_DEFINED */
  1074. /* real definition that makes the C++ compiler happy */
  1075. typedef struct tagDEC {
  1076.     USHORT wReserved;
  1077.     union {
  1078.         struct {
  1079.             BYTE scale;
  1080.             BYTE sign;
  1081. #ifdef _ANONYMOUS_STRUCT
  1082.         };
  1083. #else
  1084.         }_s1;
  1085. #endif
  1086.         USHORT signscale;
  1087.     };
  1088.     ULONG Hi32;
  1089.     union {
  1090.         struct {
  1091. #ifdef _MAC
  1092.             ULONG Mid32;
  1093.             ULONG Lo32;
  1094. #else
  1095.             ULONG Lo32;
  1096.             ULONG Mid32;
  1097. #endif
  1098. #ifdef _ANONYMOUS_STRUCT
  1099.         };
  1100. #else
  1101.         }_s2;
  1102. #endif
  1103.         ULONGLONG Lo64;
  1104.     };
  1105. } DECIMAL;
  1106. #define DECIMAL_NEG ((BYTE)0x80)
  1107. #define DECIMAL_SETZERO(dec) \
  1108.         {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
  1109. #endif /* _tagDEC_DEFINED */
  1110. #if ( _MSC_VER >= 800 )
  1111. #pragma warning(default:4201)
  1112. #endif
  1113. typedef /* [unique] */ FLAGGED_WORD_BLOB __RPC_FAR *wireBSTR;
  1114.  
  1115. typedef /* [wire_marshal] */ OLECHAR __RPC_FAR *BSTR;
  1116.  
  1117. typedef BSTR __RPC_FAR *LPBSTR;
  1118.  
  1119. /* 0 == FALSE, -1 == TRUE */
  1120. typedef short VARIANT_BOOL;
  1121.  
  1122. #if !__STDC__ && (_MSC_VER <= 1000)
  1123. /* For backward compatibility */
  1124. typedef VARIANT_BOOL _VARIANT_BOOL;
  1125.  
  1126. #else
  1127. /* ANSI C/C++ reserve bool as keyword */
  1128. #define _VARIANT_BOOL    /##/
  1129. #endif
  1130. typedef boolean BOOLEAN;
  1131.  
  1132. /* The BSTRBLOB structure is used by some implementations */
  1133. /* of the IPropertyStorage interface when marshaling BSTRs */
  1134. /* on systems which don't support BSTR marshaling. */
  1135. #ifndef _tagBSTRBLOB_DEFINED
  1136. #define _tagBSTRBLOB_DEFINED
  1137. typedef struct  tagBSTRBLOB
  1138.     {
  1139.     ULONG cbSize;
  1140.     /* [size_is] */ BYTE __RPC_FAR *pData;
  1141.     }    BSTRBLOB;
  1142.  
  1143. typedef struct tagBSTRBLOB __RPC_FAR *LPBSTRBLOB;
  1144.  
  1145. #endif
  1146. #define VARIANT_TRUE ((VARIANT_BOOL)0xffff)
  1147. #define VARIANT_FALSE ((VARIANT_BOOL)0)
  1148. #ifndef _tagBLOB_DEFINED
  1149. #define _tagBLOB_DEFINED
  1150. #define _BLOB_DEFINED
  1151. #define _LPBLOB_DEFINED
  1152. typedef struct  tagBLOB
  1153.     {
  1154.     ULONG cbSize;
  1155.     /* [size_is] */ BYTE __RPC_FAR *pBlobData;
  1156.     }    BLOB;
  1157.  
  1158. typedef struct tagBLOB __RPC_FAR *LPBLOB;
  1159.  
  1160. #endif
  1161. typedef struct  tagCLIPDATA
  1162.     {
  1163.     ULONG cbSize;
  1164.     long ulClipFmt;
  1165.     /* [size_is] */ BYTE __RPC_FAR *pClipData;
  1166.     }    CLIPDATA;
  1167.  
  1168. // Macro to calculate the size of the above pClipData
  1169. #define CBPCLIPDATA(clipdata)    ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
  1170. typedef unsigned short VARTYPE;
  1171.  
  1172. /*
  1173.  * VARENUM usage key,
  1174.  *
  1175.  * * [V] - may appear in a VARIANT
  1176.  * * [T] - may appear in a TYPEDESC
  1177.  * * [P] - may appear in an OLE property set
  1178.  * * [S] - may appear in a Safe Array
  1179.  *
  1180.  *
  1181.  *  VT_EMPTY            [V]   [P]     nothing
  1182.  *  VT_NULL             [V]   [P]     SQL style Null
  1183.  *  VT_I2               [V][T][P][S]  2 byte signed int
  1184.  *  VT_I4               [V][T][P][S]  4 byte signed int
  1185.  *  VT_R4               [V][T][P][S]  4 byte real
  1186.  *  VT_R8               [V][T][P][S]  8 byte real
  1187.  *  VT_CY               [V][T][P][S]  currency
  1188.  *  VT_DATE             [V][T][P][S]  date
  1189.  *  VT_BSTR             [V][T][P][S]  OLE Automation string
  1190.  *  VT_DISPATCH         [V][T][P][S]  IDispatch *
  1191.  *  VT_ERROR            [V][T][P][S]  SCODE
  1192.  *  VT_BOOL             [V][T][P][S]  True=-1, False=0
  1193.  *  VT_VARIANT          [V][T][P][S]  VARIANT *
  1194.  *  VT_UNKNOWN          [V][T]   [S]  IUnknown *
  1195.  *  VT_DECIMAL          [V][T]   [S]  16 byte fixed point
  1196.  *  VT_I1                  [T]        signed char
  1197.  *  VT_UI1              [V][T][P][S]  unsigned char
  1198.  *  VT_UI2                 [T][P]     unsigned short
  1199.  *  VT_UI4                 [T][P]     unsigned short
  1200.  *  VT_I8                  [T][P]     signed 64-bit int
  1201.  *  VT_UI8                 [T][P]     unsigned 64-bit int
  1202.  *  VT_INT                 [T]        signed machine int
  1203.  *  VT_UINT                [T]        unsigned machine int
  1204.  *  VT_VOID                [T]        C style void
  1205.  *  VT_HRESULT             [T]        Standard return type
  1206.  *  VT_PTR                 [T]        pointer type
  1207.  *  VT_SAFEARRAY           [T]        (use VT_ARRAY in VARIANT)
  1208.  *  VT_CARRAY              [T]        C style array
  1209.  *  VT_USERDEFINED         [T]        user defined type
  1210.  *  VT_LPSTR               [T][P]     null terminated string
  1211.  *  VT_LPWSTR              [T][P]     wide null terminated string
  1212.  *  VT_FILETIME               [P]     FILETIME
  1213.  *  VT_BLOB                   [P]     Length prefixed bytes
  1214.  *  VT_STREAM                 [P]     Name of the stream follows
  1215.  *  VT_STORAGE                [P]     Name of the storage follows
  1216.  *  VT_STREAMED_OBJECT        [P]     Stream contains an object
  1217.  *  VT_STORED_OBJECT          [P]     Storage contains an object
  1218.  *  VT_BLOB_OBJECT            [P]     Blob contains an object
  1219.  *  VT_CF                     [P]     Clipboard format
  1220.  *  VT_CLSID                  [P]     A Class ID
  1221.  *  VT_VECTOR                 [P]     simple counted array
  1222.  *  VT_ARRAY            [V]           SAFEARRAY*
  1223.  *  VT_BYREF            [V]           void* for local use
  1224.  *  VT_BSTR_BLOB                      Reserved for system use
  1225.  */
  1226.  
  1227. enum VARENUM
  1228.     {    VT_EMPTY    = 0,
  1229.     VT_NULL    = 1,
  1230.     VT_I2    = 2,
  1231.     VT_I4    = 3,
  1232.     VT_R4    = 4,
  1233.     VT_R8    = 5,
  1234.     VT_CY    = 6,
  1235.     VT_DATE    = 7,
  1236.     VT_BSTR    = 8,
  1237.     VT_DISPATCH    = 9,
  1238.     VT_ERROR    = 10,
  1239.     VT_BOOL    = 11,
  1240.     VT_VARIANT    = 12,
  1241.     VT_UNKNOWN    = 13,
  1242.     VT_DECIMAL    = 14,
  1243.     VT_I1    = 16,
  1244.     VT_UI1    = 17,
  1245.     VT_UI2    = 18,
  1246.     VT_UI4    = 19,
  1247.     VT_I8    = 20,
  1248.     VT_UI8    = 21,
  1249.     VT_INT    = 22,
  1250.     VT_UINT    = 23,
  1251.     VT_VOID    = 24,
  1252.     VT_HRESULT    = 25,
  1253.     VT_PTR    = 26,
  1254.     VT_SAFEARRAY    = 27,
  1255.     VT_CARRAY    = 28,
  1256.     VT_USERDEFINED    = 29,
  1257.     VT_LPSTR    = 30,
  1258.     VT_LPWSTR    = 31,
  1259.     VT_FILETIME    = 64,
  1260.     VT_BLOB    = 65,
  1261.     VT_STREAM    = 66,
  1262.     VT_STORAGE    = 67,
  1263.     VT_STREAMED_OBJECT    = 68,
  1264.     VT_STORED_OBJECT    = 69,
  1265.     VT_BLOB_OBJECT    = 70,
  1266.     VT_CF    = 71,
  1267.     VT_CLSID    = 72,
  1268.     VT_BSTR_BLOB    = 0xfff,
  1269.     VT_VECTOR    = 0x1000,
  1270.     VT_ARRAY    = 0x2000,
  1271.     VT_BYREF    = 0x4000,
  1272.     VT_RESERVED    = 0x8000,
  1273.     VT_ILLEGAL    = 0xffff,
  1274.     VT_ILLEGALMASKED    = 0xfff,
  1275.     VT_TYPEMASK    = 0xfff
  1276.     };
  1277. typedef ULONG PROPID;
  1278.  
  1279. #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED
  1280. #define SID_IDENTIFIER_AUTHORITY_DEFINED
  1281. typedef struct  _SID_IDENTIFIER_AUTHORITY
  1282.     {
  1283.     UCHAR Value[ 6 ];
  1284.     }    SID_IDENTIFIER_AUTHORITY;
  1285.  
  1286. typedef struct _SID_IDENTIFIER_AUTHORITY __RPC_FAR *PSID_IDENTIFIER_AUTHORITY;
  1287.  
  1288. #endif
  1289. #ifndef SID_DEFINED
  1290. #define SID_DEFINED
  1291. typedef struct  _SID
  1292.     {
  1293.     UCHAR Revision;
  1294.     UCHAR SubAuthorityCount;
  1295.     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
  1296.     /* [size_is] */ ULONG SubAuthority[ 1 ];
  1297.     }    SID;
  1298.  
  1299. typedef struct _SID __RPC_FAR *PISID;
  1300.  
  1301. #endif
  1302. typedef GUID APPID;
  1303.  
  1304. typedef struct  tagCSPLATFORM
  1305.     {
  1306.     DWORD dwPlatformId;
  1307.     DWORD dwVersionHi;
  1308.     DWORD dwVersionLo;
  1309.     DWORD dwProcessorArch;
  1310.     }    CSPLATFORM;
  1311.  
  1312. typedef struct  tagQUERYCONTEXT
  1313.     {
  1314.     DWORD dwContext;
  1315.     CSPLATFORM Platform;
  1316.     LCID Locale;
  1317.     DWORD dwVersionHi;
  1318.     DWORD dwVersionLo;
  1319.     }    QUERYCONTEXT;
  1320.  
  1321. typedef /* [v1_enum] */ 
  1322. enum tagTYSPEC
  1323.     {    TYSPEC_CLSID    = 0,
  1324.     TYSPEC_FILEEXT    = TYSPEC_CLSID + 1,
  1325.     TYSPEC_MIMETYPE    = TYSPEC_FILEEXT + 1,
  1326.     TYSPEC_PROGID    = TYSPEC_MIMETYPE + 1,
  1327.     TYSPEC_IID    = TYSPEC_PROGID + 1,
  1328.     TYSPEC_TYPELIB    = TYSPEC_IID + 1,
  1329.     TYSPEC_FILENAME    = TYSPEC_TYPELIB + 1
  1330.     }    TYSPEC;
  1331.  
  1332. typedef /* [public] */ struct  __MIDL___MIDL_itf_wtypes_0001_0001
  1333.     {
  1334.     DWORD tyspec;
  1335.     /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_wtypes_0001_0003
  1336.         {
  1337.         /* [case()] */ CLSID clsid;
  1338.         /* [case()] */ IID iid;
  1339.         /* [case()] */ GUID typelibID;
  1340.         /* [case()] */ LPOLESTR pFileExt;
  1341.         /* [case()] */ LPOLESTR pMimeType;
  1342.         /* [case()] */ LPOLESTR pProgId;
  1343.         /* [case()] */ LPOLESTR pFileName;
  1344.         }    tagged_union;
  1345.     }    uCLSSPEC;
  1346.  
  1347. typedef struct  _PUBLISHEDAPPINFO
  1348.     {
  1349.     LPOLESTR pwszFileExtension;
  1350.     LPOLESTR pwszDisplayName;
  1351.     }    PUBLISHEDAPPINFO;
  1352.  
  1353. typedef /* [v1_enum] */ 
  1354. enum tagAPPINFOTYPE
  1355.     {    APPINFO_PUBLISHED    = 1,
  1356.     APPINFO_SHELLNEW    = APPINFO_PUBLISHED + 1,
  1357.     APPINFO_INSERTABLE    = APPINFO_SHELLNEW + 1
  1358.     }    APPINFOTYPE;
  1359.  
  1360. #define    ACTFLG_RunLocally    ( 1 )
  1361.  
  1362. #define    ACTFLG_RunOnce    ( 2 )
  1363.  
  1364. #define    ACTFLG_SystemWide    ( 4 )
  1365.  
  1366. #define    ACTFLG_Published    ( 8 )
  1367.  
  1368. #define    ACTFLG_Assigned    ( 16 )
  1369.  
  1370. typedef /* [v1_enum] */ 
  1371. enum _CLASSPATHTYPE
  1372.     {    ExeNamePath    = 0,
  1373.     DllNamePath    = ExeNamePath + 1,
  1374.     TlbNamePath    = DllNamePath + 1,
  1375.     CabFilePath    = TlbNamePath + 1,
  1376.     InfFilePath    = CabFilePath + 1,
  1377.     DrwFilePath    = InfFilePath + 1,
  1378.     SetupNamePath    = DrwFilePath + 1
  1379.     }    CLASSPATHTYPE;
  1380.  
  1381. typedef struct  tagAPPDETAIL
  1382.     {
  1383.     GUID AppID;
  1384.     DWORD cClasses;
  1385.     /* [size_is] */ CLSID __RPC_FAR *prgClsIdList;
  1386.     DWORD cTypeLibIds;
  1387.     /* [size_is] */ CLSID __RPC_FAR *prgTypeLibIdList;
  1388.     DWORD cServers;
  1389.     /* [size_is] */ LPOLESTR __RPC_FAR *prgServerNames;
  1390.     }    APPDETAIL;
  1391.  
  1392. typedef struct  tagPACKAGEDETAIL
  1393.     {
  1394.     CLASSPATHTYPE PathType;
  1395.     LPOLESTR pszPath;
  1396.     LPOLESTR pszIconPath;
  1397.     LPOLESTR pszSetupCommand;
  1398.     DWORD dwActFlags;
  1399.     LPOLESTR pszVendor;
  1400.     LPOLESTR pszPackageName;
  1401.     LPOLESTR pszProductName;
  1402.     DWORD dwContext;
  1403.     CSPLATFORM Platform;
  1404.     LCID Locale;
  1405.     DWORD dwVersionHi;
  1406.     DWORD dwVersionLo;
  1407.     ULONGLONG Usn;
  1408.     DWORD cApps;
  1409.     /* [size_is] */ APPDETAIL __RPC_FAR *pAppDetail;
  1410.     }    PACKAGEDETAIL;
  1411.  
  1412. typedef struct  tagPACKAGEINFO
  1413.     {
  1414.     LPOLESTR pszClassIconPath;
  1415.     CLSID __RPC_FAR *pTreatAsClsid;
  1416.     DWORD cPackages;
  1417.     /* [size_is] */ PACKAGEDETAIL __RPC_FAR *pPackageDetail;
  1418.     }    PACKAGEINFO;
  1419.  
  1420.  
  1421.  
  1422. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0001_v0_0_c_ifspec;
  1423. extern RPC_IF_HANDLE __MIDL_itf_wtypes_0001_v0_0_s_ifspec;
  1424.  
  1425. /* Additional Prototypes for ALL interfaces */
  1426.  
  1427. /* end of Additional Prototypes */
  1428.  
  1429. #ifdef __cplusplus
  1430. }
  1431. #endif
  1432.  
  1433. #pragma option pop
  1434. #endif
  1435.